package semana4.ejerciciosFinales;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class Evaluacion3 {

	private Scanner scan;
	private int tamanoMatriz;
	private int[][] matriz;
	private int[] sumaColumnas;
	private int[] sumaFilas;

	public Evaluacion3() {
		pedirTamanoMatriz();
		inicializar();
		generarMatriz();
		mostrarMatriz();
		sumarFilas();
		sumarColumnas();
		mostrarFilaMayor();
		mostrarColumnaMayor();
	}

	private void mostrarColumnaMayor() {
		int acc = 0;
		int numeroColumna = 0;

		for (int i = 0; i < sumaColumnas.length; i++) {
			if (sumaColumnas[i] > acc) {
				acc = sumaColumnas[i];
				numeroColumna = i;
			}

		}
		System.out.println("=========================");

		System.out.println("La columna mayor es la " + (numeroColumna + 1)
				+ " y suma " + acc);

	}

	private void mostrarFilaMayor() {
		int acc = 0;
		int numeroFila = 0;
		for (int i = 0; i < sumaFilas.length; i++) {
			if (sumaFilas[i] > acc) {
				acc = sumaFilas[i];
				numeroFila = i;
			}

		}
		System.out.println("=========================");
		System.out.println("La fila mayor es la " + (numeroFila + 1)
				+ " y suma " + acc);
	}

	private void sumarFilas() {

		sumaFilas = new int[tamanoMatriz];
		int acc = 0;
		for (int i = 0; i < matriz.length; i++) {
			for (int j = 0; j < matriz[0].length; j++) {

				sumaFilas[i] = sumaFilas[i] + matriz[i][j];
			}
		}

	}

	private void sumarColumnas() {
		sumaColumnas = new int[tamanoMatriz];
		for (int i = 0; i < matriz.length; i++) {
			for (int j = 0; j < matriz[0].length; j++) {

				sumaColumnas[j] = sumaColumnas[j] + matriz[i][j];
			}
		}

	}

	private void mostrarMatriz() {
		for (int i = 0; i < matriz.length; i++) {
			for (int j = 0; j < matriz[0].length; j++) {
				System.out.print(matriz[i][j] + "\t");
			}
			System.out.println();
		}

	}

	private void generarMatriz() {
		for (int i = 0; i < matriz.length; i++) {
			for (int j = 0; j < matriz[0].length; j++) {
				matriz[i][j] = (new Random().nextInt(20) + 1);
			}
		}

	}

	private void pedirTamanoMatriz() {
		scan = new Scanner(System.in);
		System.out
				.println("Introduce tama�o de la matriz.\nEl tama�o deber� estar comprendido entre 2 y 10.");
		System.out.println("Se generara una matriz de \"nxn\"");
		tamanoMatriz = scan.nextInt();
	}

	private void inicializar() {
		matriz = new int[tamanoMatriz][tamanoMatriz];
	}

	public static void main(String[] args) {
		new Evaluacion3();
	}

}
